#ifndef __USERMANAGER_H
#define __USERMANAGER_H
#include <iostream>
using namespace std;
#include <string>
#include <map>
#include <mutex>
#include "DatabaseManager.h"

// 用户类
class User {
    public:
        enum class Role {
            Admin,
            User
        };
		 User() = default;  // 默认构造函数

    
        User(int id, const string& username, const string& password, Role role)
            : id(id), username(username), password(password), role(role) {}
    
        int getId() const { return id; }
    
        const string& getUsername() const { return username; }
    
        const string& getPassword() const { return password; }
    
        Role getRole() const { return role; }
    
    private:
        int id;
        string username;
        string password;
        Role role;
    };
    
    // 用户管理类
    class UserManager {
    public:
        UserManager();

        ~UserManager();
    
        // 注册用户
        bool registerUser(const string& username, const string& password);  

        // 登录用户
        bool loginUser(const string& username, const string& password);  

         // 删除用户
        bool deleteUser(const string& username);  

         // 获取用户信息
        User* getUser(const string& username); 
    
    private:
        DatabaseManager dbManager;  // 数据库管理
        mutable mutex mtx;  // 线程安全
        map<int, User> users;  // 用户信息存储
        map<int, string> sessions;  // 会话信息
    };
    
#endif